package com.grupobbva.seguridad.domain;

import java.io.Serializable;
import javax.persistence.*;

import java.util.Date;


/**
 * The persistent class for the PERFIL_AMBITO database table.
 * 
 */
@Entity
@Table(name="PERFIL_USUARIO")
public class PerfilUsuario implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="PERFIL_USU_ID")
	private Long perfilUsuarioId;

    @ManyToOne
	@JoinColumn(name="AMBITO_ID")
	private TablaDetalle ambito;

	@Column(name="CODIGO_ID")
	private String codigoId;

	@Column(name="NOMBRE")
	private String nombre;

    @ManyToOne
	@JoinColumn(name="ESTADO_ID")
	private TablaDetalle estado;

    @Temporal(TemporalType.TIMESTAMP)
	@Column(name="FECHA_CREACION")
	private Date fechaCreacion;

    @Temporal( TemporalType.TIMESTAMP)
	@Column(name="FECHA_MODIFICACION")
	private Date fechaModificacion;

	@Column(name="USUARIO_CREACION")
	private String usuarioCreacion;

	@Column(name="USUARIO_MODIFICACION")
	private String usuarioModificacion;

    @Column(name="APLICACION_ID")
	private Long aplicacionId;

    @Column(name="PERFIL_ID")
	private Long perfilId;

    @ManyToOne
    @JoinColumn(name="APLICACION_ID", insertable=false, updatable=false)
	private Aplicacion aplicacion;

    @ManyToOne
    @JoinColumns ({
    	@JoinColumn(name="APLICACION_ID", insertable=false, updatable=false),
    	@JoinColumn(name="PERFIL_ID", insertable=false, updatable=false)
    })
	private Perfil perfil;

    public PerfilUsuario() {
    	
    }
    public PerfilUsuario(Long perfilUsuarioId) {
    	this.perfilUsuarioId = perfilUsuarioId;
    }
	
	public Date getFechaCreacion() {
		return this.fechaCreacion;
	}

	public void setFechaCreacion(Date fechaCreacion) {
		this.fechaCreacion = fechaCreacion;
	}

	public Date getFechaModificacion() {
		return this.fechaModificacion;
	}

	public void setFechaModificacion(Date fechaModificacion) {
		this.fechaModificacion = fechaModificacion;
	}

	public String getUsuarioCreacion() {
		return this.usuarioCreacion;
	}

	public void setUsuarioCreacion(String usuarioCreacion) {
		this.usuarioCreacion = usuarioCreacion;
	}

	public String getUsuarioModificacion() {
		return this.usuarioModificacion;
	}

	public void setUsuarioModificacion(String usuarioModificacion) {
		this.usuarioModificacion = usuarioModificacion;
	}

	public Perfil getPerfil() {
		return this.perfil;
	}

	public void setPerfil(Perfil perfil) {
		this.perfil = perfil;
	}

	public String getCodigoId() {
		return codigoId;
	}

	public void setCodigoId(String codigoId) {
		this.codigoId = codigoId;
	}

	public Long getPerfilUsuarioId() {
		return perfilUsuarioId;
	}

	public void setPerfilUsuarioId(Long id) {
		this.perfilUsuarioId = id;
	}

	public TablaDetalle getEstado() {
		return estado;
	}

	public void setEstado(TablaDetalle estado) {
		this.estado = estado;
	}

	public Aplicacion getAplicacion() {
		return aplicacion;
	}

	public void setAplicacion(Aplicacion aplicacion) {
		this.aplicacion = aplicacion;
	}

	public Long getAplicacionId() {
		return aplicacionId;
	}

	public void setAplicacionId(Long aplicacionId) {
		this.aplicacionId = aplicacionId;
	}

	public Long getPerfilId() {
		return perfilId;
	}

	public void setPerfilId(Long perfilId) {
		this.perfilId = perfilId;
	}

	public TablaDetalle getAmbito() {
		return ambito;
	}

	public void setAmbito(TablaDetalle ambito) {
		this.ambito = ambito;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getNombre() {
		return nombre;
	}
	
}